#include "previewwindow.h"
#include "ui_previewwindow.h"

#include <QDir>
#include <QDebug>
PreviewWindow::PreviewWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::PreviewWindow)
{
    ui->setupUi(this);
    show_back_gif();
    /*
        将当前pic目录里面的bmp照片存储到链表中
    */
    //打开pic目录--先创建pic目录
    QDir dir("/even/pic"); //打开目录
    dir.setFilter(QDir::Files);
    //将目录下所有的文件信息存储到该容器中
    fileList = dir.entryInfoList(); //将目录里面所有的bmp照片添加到链表中

    for(int i=0; i<fileList.size() ;i++){
         qDebug()<<fileList.at(i).filePath(); //打印图片的路径名字
    }

    index = 0;
}

PreviewWindow::~PreviewWindow()
{
    delete ui;
}

//显示动态背景图
void PreviewWindow::show_back_gif()
{
    QMovie *movepic = new QMovie(QString::fromLocal8Bit(":/new/prefix1/back.gif"));
    movepic->setScaledSize(ui->backGif->size());
    ui->backGif->setMovie(movepic);
    movepic->start();
}

//摄像头拍摄的图片预览--下一张
void PreviewWindow::on_next_img_btn_clicked()
{
    qDebug()<<"fileList.size():"<<fileList.size();
    if(fileList.size() != 0)
    {
        QString picName = fileList.at(index).filePath(); //从链表里面获取图片的路径
        QPixmap pic(picName);
        //获取摄像头拍摄的照片的原本尺寸：640*640
        qDebug()<<"Size:"<<QString::number(pic.width())+"*"+QString::number(pic.width());
        //label的尺寸700*420--设置图片大小为420*420
        pic = pic.scaled(QSize(420,420));
        ui->label->setPixmap(pic);
        //设置为居中显示
        ui->label->setAlignment(Qt::AlignCenter);
        qDebug()<<"Path:"<<picName;
        // 获取从路径的最后一个“/”后面开始的6个字符--拍摄时间
        QString substring = picName.mid(picName.lastIndexOf("/")+1, 6);
        qDebug()<<"Time:"<<substring;
        ui->time_label->setText(substring.mid(0,2)+":"+substring.mid(2,2)+":"+substring.mid(4,2));
        ui->name_label->setText(fileList.at(index).fileName());
        //获取当前显示的照片的尺寸：420*420
        qDebug()<<"Size:"<<QString::number(pic.width())+"*"+QString::number(pic.width());
        index++;
        if(index > fileList.size()-1)
             index = 0;
    }

}

//摄像头拍摄的图片预览--上一张
void PreviewWindow::on_prev_img_btn_clicked()
{
    qDebug()<<"fileList.size():"<<fileList.size();
    if(fileList.size() != 0)
    {
        QString picName = fileList.at(index).filePath(); //从链表里面获取图片的路径
        QPixmap pic(picName);
        //获取摄像头拍摄的照片的原本尺寸：640*640
        qDebug()<<"Size:"<<QString::number(pic.width())+"*"+QString::number(pic.width());
        //label的尺寸700*420--设置图片大小为420*420
        pic = pic.scaled(QSize(420,420));
        ui->label->setPixmap(pic);
        //设置为居中显示
        ui->label->setAlignment(Qt::AlignCenter);
        qDebug()<<"Path:"<<picName;
        // 获取从路径的最后一个“/”后面开始的6个字符--拍摄时间
        QString substring = picName.mid(picName.lastIndexOf("/")+1, 6);
        qDebug()<<"Time:"<<substring;
        ui->time_label->setText(substring.mid(0,2)+":"+substring.mid(2,2)+":"+substring.mid(4,2));
        ui->name_label->setText(fileList.at(index).fileName());
        //获取当前显示的照片的尺寸：420*420
        qDebug()<<"Size:"<<QString::number(pic.width())+"*"+QString::number(pic.width());
        index--;
        if(index < 0)
             index = fileList.size() -1;
    }
}

//返回上个界面--摄像头界面--并清空摄像头拍摄的照片
void PreviewWindow::on_Return_Btn_clicked()
{
    //因为在跳转时，记录了上一个界面
    //所以可以利用此函数获取当前窗口的父窗口对象指针
    QWidget *parent = this->parentWidget();

    parent->show();//把之前父界面的隐藏状态改为显示状态，显示父界面
    //清空pic文件中的所有图片
    for(int i=0; i<fileList.size() ;i++){
         qDebug()<<fileList.at(i).filePath(); //打印图片的路径名字
//         unlink(fileList.at(i).filePath().toStdString().data());
//         QFile file(fileList.at(i).filePath());
//         file.remove();
         //Qt的静态方式删除文件
         QFile::remove(fileList.at(i).filePath());

    }
    this->close();//关闭当前界面
}
